#include <iostream>
#include <string>

using namespace std;

class Human {
public:
    string Name, Gender, School;
    int Age;

    Human(string Name, int Age, string Gender, string School) : Name(Name), Age(Age), Gender(Gender), School(School) {}

    void say() {
        cout << "Hello everyone!" << endl << "  ";
    }

    void SelfIntroduction() {
        cout << "My name is " << Name << ". I am " << Gender << ". This year I am " << Age << " years old. I am from " << School << "." << endl;
    }
};

class NormalYouth : public Human {
public:
    string Job;

    NormalYouth(string Name, int Age, string Gender, string School, string Job)
        : Human(Name, Age, Gender, School), Job(Job) {}

    void say1() {
        cout << "Now I am doing a job of " << Job << "." << endl;
    }
};

class ArtisticYouth : public Human {
public:
    string Masterpiece, Ideal;

    ArtisticYouth(string Name, int Age, string Gender, string School, string Masterpiece, string Ideal)
        : Human(Name, Age, Gender, School), Masterpiece(Masterpiece), Ideal(Ideal) {}

    void say2() {
        cout << "If you have ever read my " << Masterpiece << ", I could not be more delighted! Now my ideal is to " << Ideal << "." << endl;
    }
};

void testyouth(){
    Human Kelly("Kelly", 24, "female", "Anhui University");
    Kelly.say();
    Kelly.SelfIntroduction();

    cout << endl;
    NormalYouth DH("东华", 21, "male", "Hunan Normal University", "teaching");
    DH.say();
    DH.SelfIntroduction();
    DH.say1();

    cout << endl;
    ArtisticYouth MH("穆徽", 31, "male", "Hubei Normal University", "My Love", "to be a billionaire");
    MH.say();
    MH.SelfIntroduction();
    MH.say2();

}
int main() {
    testyouth();
    return 0;
}
